🎖️GitЯра🎖️
Node / meshtastic / Meshtastic-Android / files / feature / settings / src / commonMain / kotlin / org / meshtastic / feature / settings / radio / component / LoRaConfigItemList.kt
Displaying Raw • Download
feature/settings/src/commonMain/kotlin/org/meshtastic/feature/settings/radio/component/LoRaConfigItemList.kt ccf984e4b1ea208941d491841e79f62ac84b573a (ccf984e4) Text, 14.09 KB
T8b949e/*
* Copyright (c) 2026 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tff7b72package T7ee787org.meshtastic.feature.settings.radio.component
Tff7b72import T7ee787androidx.compose.foundation.text.KeyboardActions
Tff7b72import T7ee787androidx.compose.material3.CardDefaults
Tff7b72import T7ee787androidx.compose.material3.HorizontalDivider
Tff7b72import T7ee787androidx.compose.runtime.Composable
Tff7b72import T7ee787androidx.compose.runtime.getValue
Tff7b72import T7ee787androidx.compose.runtime.mutableStateOf
Tff7b72import T7ee787androidx.compose.runtime.remember
Tff7b72import T7ee787androidx.compose.runtime.setValue
Tff7b72import T7ee787androidx.compose.ui.platform.LocalFocusManager
Tff7b72import T7ee787androidx.lifecycle.compose.collectAsStateWithLifecycle
Tff7b72import T7ee787org.jetbrains.compose.resources.stringResource
Tff7b72import T7ee787org.meshtastic.core.model.Channel
Tff7b72import T7ee787org.meshtastic.core.model.ChannelOption
Tff7b72import T7ee787org.meshtastic.core.model.RegionInfo
Tff7b72import T7ee787org.meshtastic.core.model.numChannels
Tff7b72import T7ee787org.meshtastic.core.resources.Res
Tff7b72import T7ee787org.meshtastic.core.resources.advanced
Tff7b72import T7ee787org.meshtastic.core.resources.bandwidth
Tff7b72import T7ee787org.meshtastic.core.resources.coding_rate
Tff7b72import T7ee787org.meshtastic.core.resources.config_lora_frequency_slot_summary
Tff7b72import T7ee787org.meshtastic.core.resources.config_lora_hop_limit_summary
Tff7b72import T7ee787org.meshtastic.core.resources.config_lora_modem_preset_summary
Tff7b72import T7ee787org.meshtastic.core.resources.config_lora_region_summary
Tff7b72import T7ee787org.meshtastic.core.resources.frequency_slot
Tff7b72import T7ee787org.meshtastic.core.resources.hop_limit
Tff7b72import T7ee787org.meshtastic.core.resources.ignore_mqtt
Tff7b72import T7ee787org.meshtastic.core.resources.lora
Tff7b72import T7ee787org.meshtastic.core.resources.modem_preset
Tff7b72import T7ee787org.meshtastic.core.resources.ok_to_mqtt
Tff7b72import T7ee787org.meshtastic.core.resources.options
Tff7b72import T7ee787org.meshtastic.core.resources.override_duty_cycle
Tff7b72import T7ee787org.meshtastic.core.resources.override_frequency_mhz
Tff7b72import T7ee787org.meshtastic.core.resources.pa_fan_disabled
Tff7b72import T7ee787org.meshtastic.core.resources.region_frequency_plan
Tff7b72import T7ee787org.meshtastic.core.resources.spread_factor
Tff7b72import T7ee787org.meshtastic.core.resources.sx126x_rx_boosted_gain
Tff7b72import T7ee787org.meshtastic.core.resources.tx_enabled
Tff7b72import T7ee787org.meshtastic.core.resources.tx_power_dbm
Tff7b72import T7ee787org.meshtastic.core.resources.use_modem_preset
Tff7b72import T7ee787org.meshtastic.core.ui.component.DropDownPreference
Tff7b72import T7ee787org.meshtastic.core.ui.component.EditTextPreference
Tff7b72import T7ee787org.meshtastic.core.ui.component.SignedIntegerEditTextPreference
Tff7b72import T7ee787org.meshtastic.core.ui.component.SwitchPreference
Tff7b72import T7ee787org.meshtastic.core.ui.component.TitledCard
Tff7b72import T7ee787org.meshtastic.feature.settings.radio.RadioConfigViewModel
Tff7b72import T7ee787org.meshtastic.feature.settings.util.hopLimits
Tff7b72import T7ee787org.meshtastic.proto.Config
Tff7b72private Tff7b72val Te6edf3SPREAD_FACTOR_RANGE Tff7b72= T79c0ff7.Tb4b4b4.T79c0ff1T79c0ff2
Tff7b72private Tff7b72val Te6edf3CODING_RATE_RANGE Tff7b72= T79c0ff5.Tb4b4b4.T79c0ff8
T8b949e/** Valid LoRa bandwidth codes mapped to their display labels (kHz). */
Tff7b72private Tff7b72val Te6edf3BANDWIDTH_OPTIONSTb4b4b4: Te6edf3ListTff7b72<Te6edf3PairTff7b72<Tffa657IntTb4b4b4, Tffa657StringTff7b72>Tff7b72> Tff7b72=
Te6edf3listOfTb4b4b4(
T79c0ff8 Te6edf3to Ta5d6ff"Ta5d6ff7.8 kHzTa5d6ff"Tb4b4b4,
T79c0ff1T79c0ff0 Te6edf3to Ta5d6ff"Ta5d6ff10.4 kHzTa5d6ff"Tb4b4b4,
T79c0ff1T79c0ff6 Te6edf3to Ta5d6ff"Ta5d6ff15.6 kHzTa5d6ff"Tb4b4b4,
T79c0ff2T79c0ff1 Te6edf3to Ta5d6ff"Ta5d6ff20.8 kHzTa5d6ff"Tb4b4b4,
T79c0ff3T79c0ff1 Te6edf3to Ta5d6ff"Ta5d6ff31.25 kHzTa5d6ff"Tb4b4b4,
T79c0ff4T79c0ff2 Te6edf3to Ta5d6ff"Ta5d6ff41.7 kHzTa5d6ff"Tb4b4b4,
T79c0ff6T79c0ff2 Te6edf3to Ta5d6ff"Ta5d6ff62.5 kHzTa5d6ff"Tb4b4b4,
T79c0ff1T79c0ff2T79c0ff5 Te6edf3to Ta5d6ff"Ta5d6ff125 kHzTa5d6ff"Tb4b4b4,
T79c0ff2T79c0ff5T79c0ff0 Te6edf3to Ta5d6ff"Ta5d6ff250 kHzTa5d6ff"Tb4b4b4,
T79c0ff5T79c0ff0T79c0ff0 Te6edf3to Ta5d6ff"Ta5d6ff500 kHzTa5d6ff"Tb4b4b4,
Tb4b4b4)
Tf0883e@Composable
Tff7b72fun Td2a8ffLoRaConfigScreenTb4b4b4(Te6edf3viewModelTb4b4b4: Te6edf3RadioConfigViewModelTb4b4b4, Te6edf3onBackTb4b4b4: Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3state Tff7b72by Te6edf3viewModelTb4b4b4.Te6edf3radioConfigStateTb4b4b4.Te6edf3collectAsStateWithLifecycleTb4b4b4(Tb4b4b4)
Tff7b72val Te6edf3loraConfig Tff7b72= Te6edf3stateTb4b4b4.Te6edf3radioConfigTb4b4b4.Te6edf3lora Tff7b72?: Te6edf3ConfigTb4b4b4.Te6edf3LoRaConfigTb4b4b4(Tb4b4b4)
Tff7b72val Te6edf3primarySettings Tff7b72= Te6edf3stateTb4b4b4.Te6edf3channelListTb4b4b4.Te6edf3getOrNullTb4b4b4(T79c0ff0Tb4b4b4) Tff7b72?: Tff7b72return
Tff7b72val Te6edf3formState Tff7b72= Te6edf3rememberConfigStateTb4b4b4(Te6edf3initialValue Tff7b72= Te6edf3loraConfigTb4b4b4)
Tff7b72val Te6edf3primaryChannel Tff7b72= Te6edf3rememberTb4b4b4(Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4) Tb4b4b4{ Te6edf3ChannelTb4b4b4(Te6edf3primarySettingsTb4b4b4, Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4) Tb4b4b4}
Tff7b72val Te6edf3focusManager Tff7b72= Te6edf3LocalFocusManagerTb4b4b4.Te6edf3current
Te6edf3RadioConfigScreenListTb4b4b4(
Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3loraTb4b4b4)Tb4b4b4,
Te6edf3onBack Tff7b72= Te6edf3onBackTb4b4b4,
Te6edf3configState Tff7b72= Te6edf3formStateTb4b4b4,
Te6edf3enabled Tff7b72= Te6edf3stateTb4b4b4.Te6edf3connectedTb4b4b4,
Te6edf3responseState Tff7b72= Te6edf3stateTb4b4b4.Te6edf3responseStateTb4b4b4,
Te6edf3onDismissPacketResponse Tff7b72= Te6edf3viewModelTff7b72::Te6edf3clearPacketResponseTb4b4b4,
Te6edf3onSave Tff7b72= Tb4b4b4{
Tff7b72val Te6edf3config Tff7b72= Te6edf3ConfigTb4b4b4(Te6edf3lora Tff7b72= Tffa657itTb4b4b4)
Te6edf3viewModelTb4b4b4.Te6edf3setConfigTb4b4b4(Te6edf3configTb4b4b4)
Tb4b4b4}Tb4b4b4,
Tb4b4b4) Tb4b4b4{
Te6edf3item Tb4b4b4{
Te6edf3TitledCardTb4b4b4(Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3optionsTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3DropDownPreferenceTb4b4b4(
Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3region_frequency_planTb4b4b4)Tb4b4b4,
Te6edf3summary Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3config_lora_region_summaryTb4b4b4)Tb4b4b4,
Te6edf3enabled Tff7b72= Te6edf3stateTb4b4b4.Te6edf3connectedTb4b4b4,
Te6edf3items Tff7b72= Te6edf3RegionInfoTb4b4b4.Te6edf3entriesTb4b4b4.Te6edf3map Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3regionCode Te6edf3to Tffa657itTb4b4b4.Te6edf3description Tb4b4b4}Tb4b4b4,
Te6edf3selectedItem Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3regionTb4b4b4,
Te6edf3onItemSelected Tff7b72= Tb4b4b4{ Te6edf3formStateTb4b4b4.Te6edf3value Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3region Tff7b72= Tffa657itTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Te6edf3HorizontalDividerTb4b4b4(Tb4b4b4)
Te6edf3SwitchPreferenceTb4b4b4(
Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3use_modem_presetTb4b4b4)Tb4b4b4,
Te6edf3checked Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3use_presetTb4b4b4,
Te6edf3enabled Tff7b72= Te6edf3stateTb4b4b4.Te6edf3connectedTb4b4b4,
Te6edf3onCheckedChange Tff7b72= Tb4b4b4{ Te6edf3formStateTb4b4b4.Te6edf3value Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3use_preset Tff7b72= Tffa657itTb4b4b4) Tb4b4b4}Tb4b4b4,
Te6edf3containerColor Tff7b72= Te6edf3CardDefaultsTb4b4b4.Te6edf3cardColorsTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3containerColorTb4b4b4,
Tb4b4b4)
Te6edf3HorizontalDividerTb4b4b4(Tb4b4b4)
Tff7b72if Tb4b4b4(Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3use_presetTb4b4b4) Tb4b4b4{
Te6edf3DropDownPreferenceTb4b4b4(
Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3modem_presetTb4b4b4)Tb4b4b4,
Te6edf3summary Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3config_lora_modem_preset_summaryTb4b4b4)Tb4b4b4,
Te6edf3enabled Tff7b72= Te6edf3stateTb4b4b4.Te6edf3connected Tff7b72&Tff7b72& Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3use_presetTb4b4b4,
Te6edf3items Tff7b72= Te6edf3ChannelOptionTb4b4b4.Te6edf3entriesTb4b4b4.Te6edf3map Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3modemPreset Te6edf3to Tffa657itTb4b4b4.Te6edf3modemPresetTb4b4b4.Te6edf3name Tb4b4b4}Tb4b4b4,
Te6edf3selectedItem Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3modem_presetTb4b4b4,
Te6edf3onItemSelected Tff7b72= Tb4b4b4{ Te6edf3formStateTb4b4b4.Te6edf3value Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3modem_preset Tff7b72= Tffa657itTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3ManualModemSettingsTb4b4b4(
Te6edf3config Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4,
Te6edf3enabled Tff7b72= Te6edf3stateTb4b4b4.Te6edf3connectedTb4b4b4,
Te6edf3focusManager Tff7b72= Te6edf3focusManagerTb4b4b4,
Te6edf3onConfigChange Tff7b72= Tb4b4b4{ Te6edf3formStateTb4b4b4.Te6edf3value Tff7b72= Tffa657it Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Te6edf3item Tb4b4b4{
Te6edf3TitledCardTb4b4b4(Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3advancedTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3SwitchPreferenceTb4b4b4(
Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3ignore_mqttTb4b4b4)Tb4b4b4,
Te6edf3checked Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3ignore_mqttTb4b4b4,
Te6edf3enabled Tff7b72= Te6edf3stateTb4b4b4.Te6edf3connectedTb4b4b4,
Te6edf3onCheckedChange Tff7b72= Tb4b4b4{ Te6edf3formStateTb4b4b4.Te6edf3value Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3ignore_mqtt Tff7b72= Tffa657itTb4b4b4) Tb4b4b4}Tb4b4b4,
Te6edf3containerColor Tff7b72= Te6edf3CardDefaultsTb4b4b4.Te6edf3cardColorsTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3containerColorTb4b4b4,
Tb4b4b4)
Te6edf3HorizontalDividerTb4b4b4(Tb4b4b4)
Te6edf3SwitchPreferenceTb4b4b4(
Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3ok_to_mqttTb4b4b4)Tb4b4b4,
Te6edf3checked Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3config_ok_to_mqttTb4b4b4,
Te6edf3enabled Tff7b72= Te6edf3stateTb4b4b4.Te6edf3connectedTb4b4b4,
Te6edf3onCheckedChange Tff7b72= Tb4b4b4{ Te6edf3formStateTb4b4b4.Te6edf3value Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3config_ok_to_mqtt Tff7b72= Tffa657itTb4b4b4) Tb4b4b4}Tb4b4b4,
Te6edf3containerColor Tff7b72= Te6edf3CardDefaultsTb4b4b4.Te6edf3cardColorsTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3containerColorTb4b4b4,
Tb4b4b4)
Te6edf3HorizontalDividerTb4b4b4(Tb4b4b4)
Te6edf3SwitchPreferenceTb4b4b4(
Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3tx_enabledTb4b4b4)Tb4b4b4,
Te6edf3checked Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3tx_enabledTb4b4b4,
Te6edf3enabled Tff7b72= Te6edf3stateTb4b4b4.Te6edf3connectedTb4b4b4,
Te6edf3onCheckedChange Tff7b72= Tb4b4b4{ Te6edf3formStateTb4b4b4.Te6edf3value Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3tx_enabled Tff7b72= Tffa657itTb4b4b4) Tb4b4b4}Tb4b4b4,
Te6edf3containerColor Tff7b72= Te6edf3CardDefaultsTb4b4b4.Te6edf3cardColorsTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3containerColorTb4b4b4,
Tb4b4b4)
Te6edf3HorizontalDividerTb4b4b4(Tb4b4b4)
Te6edf3SwitchPreferenceTb4b4b4(
Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3override_duty_cycleTb4b4b4)Tb4b4b4,
Te6edf3checked Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3override_duty_cycleTb4b4b4,
Te6edf3enabled Tff7b72= Te6edf3stateTb4b4b4.Te6edf3connectedTb4b4b4,
Te6edf3onCheckedChange Tff7b72= Tb4b4b4{ Te6edf3formStateTb4b4b4.Te6edf3value Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3override_duty_cycle Tff7b72= Tffa657itTb4b4b4) Tb4b4b4}Tb4b4b4,
Te6edf3containerColor Tff7b72= Te6edf3CardDefaultsTb4b4b4.Te6edf3cardColorsTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3containerColorTb4b4b4,
Tb4b4b4)
Te6edf3HorizontalDividerTb4b4b4(Tb4b4b4)
Tff7b72val Te6edf3hopLimitItems Tff7b72= Te6edf3remember Tb4b4b4{ Te6edf3hopLimits Tb4b4b4}
Te6edf3DropDownPreferenceTb4b4b4(
Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3hop_limitTb4b4b4)Tb4b4b4,
Te6edf3summary Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3config_lora_hop_limit_summaryTb4b4b4)Tb4b4b4,
Te6edf3items Tff7b72= Te6edf3hopLimitItemsTb4b4b4,
Te6edf3selectedItem Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3hop_limitTb4b4b4,
Te6edf3onItemSelected Tff7b72= Tb4b4b4{ Te6edf3formStateTb4b4b4.Te6edf3value Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3hop_limit Tff7b72= Tffa657itTb4b4b4) Tb4b4b4}Tb4b4b4,
Te6edf3enabled Tff7b72= Te6edf3stateTb4b4b4.Te6edf3connectedTb4b4b4,
Tb4b4b4)
Te6edf3HorizontalDividerTb4b4b4(Tb4b4b4)
Tff7b72var Te6edf3isFocusedSlot Tff7b72by Te6edf3remember Tb4b4b4{ Te6edf3mutableStateOfTb4b4b4(Tff7b72falseTb4b4b4) Tb4b4b4}
Te6edf3EditTextPreferenceTb4b4b4(
Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3frequency_slotTb4b4b4)Tb4b4b4,
Te6edf3summary Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3config_lora_frequency_slot_summaryTb4b4b4)Tb4b4b4,
Te6edf3value Tff7b72=
Tff7b72if Tb4b4b4(Te6edf3isFocusedSlot Tff7b72|Tff7b72| Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3channel_num Tff7b72!Tff7b72= T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3channel_num
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3primaryChannelTb4b4b4.Te6edf3channelNum
Tb4b4b4}Tb4b4b4,
Te6edf3enabled Tff7b72= Te6edf3stateTb4b4b4.Te6edf3connectedTb4b4b4,
Te6edf3keyboardActions Tff7b72= Te6edf3KeyboardActionsTb4b4b4(Te6edf3onDone Tff7b72= Tb4b4b4{ Te6edf3focusManagerTb4b4b4.Te6edf3clearFocusTb4b4b4(Tb4b4b4) Tb4b4b4}Tb4b4b4)Tb4b4b4,
Te6edf3onFocusChanged Tff7b72= Tb4b4b4{ Te6edf3isFocusedSlot Tff7b72= Tffa657itTb4b4b4.Te6edf3isFocused Tb4b4b4}Tb4b4b4,
Te6edf3onValueChanged Tff7b72= Tb4b4b4{
Tff7b72if Tb4b4b4(Tffa657it Tff7b72<Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3numChannelsTb4b4b4) Tb4b4b4{ T8b949e// total num of LoRa channels
Te6edf3formStateTb4b4b4.Te6edf3value Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3channel_num Tff7b72= Tffa657itTb4b4b4)
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Te6edf3HorizontalDividerTb4b4b4(Tb4b4b4)
Te6edf3SwitchPreferenceTb4b4b4(
Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3sx126x_rx_boosted_gainTb4b4b4)Tb4b4b4,
Te6edf3checked Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3sx126x_rx_boosted_gainTb4b4b4,
Te6edf3enabled Tff7b72= Te6edf3stateTb4b4b4.Te6edf3connectedTb4b4b4,
Te6edf3onCheckedChange Tff7b72= Tb4b4b4{ Te6edf3formStateTb4b4b4.Te6edf3value Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3sx126x_rx_boosted_gain Tff7b72= Tffa657itTb4b4b4) Tb4b4b4}Tb4b4b4,
Te6edf3containerColor Tff7b72= Te6edf3CardDefaultsTb4b4b4.Te6edf3cardColorsTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3containerColorTb4b4b4,
Tb4b4b4)
Te6edf3HorizontalDividerTb4b4b4(Tb4b4b4)
Tff7b72var Te6edf3isFocusedOverride Tff7b72by Te6edf3remember Tb4b4b4{ Te6edf3mutableStateOfTb4b4b4(Tff7b72falseTb4b4b4) Tb4b4b4}
Te6edf3EditTextPreferenceTb4b4b4(
Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3override_frequency_mhzTb4b4b4)Tb4b4b4,
Te6edf3value Tff7b72=
Tff7b72if Tb4b4b4(Te6edf3isFocusedOverride Tff7b72|Tff7b72| Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3override_frequency Tff7b72!Tff7b72= T79c0ff0fTb4b4b4) Tb4b4b4{
Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3override_frequency
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3primaryChannelTb4b4b4.Te6edf3radioFreq
Tb4b4b4}Tb4b4b4,
Te6edf3enabled Tff7b72= Te6edf3stateTb4b4b4.Te6edf3connectedTb4b4b4,
Te6edf3keyboardActions Tff7b72= Te6edf3KeyboardActionsTb4b4b4(Te6edf3onDone Tff7b72= Tb4b4b4{ Te6edf3focusManagerTb4b4b4.Te6edf3clearFocusTb4b4b4(Tb4b4b4) Tb4b4b4}Tb4b4b4)Tb4b4b4,
Te6edf3onFocusChanged Tff7b72= Tb4b4b4{ Te6edf3isFocusedOverride Tff7b72= Tffa657itTb4b4b4.Te6edf3isFocused Tb4b4b4}Tb4b4b4,
Te6edf3onValueChanged Tff7b72= Tb4b4b4{ Te6edf3formStateTb4b4b4.Te6edf3value Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3override_frequency Tff7b72= Tffa657itTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Te6edf3HorizontalDividerTb4b4b4(Tb4b4b4)
Te6edf3SignedIntegerEditTextPreferenceTb4b4b4(
Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3tx_power_dbmTb4b4b4)Tb4b4b4,
Te6edf3value Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3tx_powerTb4b4b4,
Te6edf3enabled Tff7b72= Te6edf3stateTb4b4b4.Te6edf3connectedTb4b4b4,
Te6edf3keyboardActions Tff7b72= Te6edf3KeyboardActionsTb4b4b4(Te6edf3onDone Tff7b72= Tb4b4b4{ Te6edf3focusManagerTb4b4b4.Te6edf3clearFocusTb4b4b4(Tb4b4b4) Tb4b4b4}Tb4b4b4)Tb4b4b4,
Te6edf3onValueChanged Tff7b72= Tb4b4b4{ Te6edf3formStateTb4b4b4.Te6edf3value Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3tx_power Tff7b72= Tffa657itTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72if Tb4b4b4(Te6edf3viewModelTb4b4b4.Te6edf3hasPaFanTb4b4b4) Tb4b4b4{
Te6edf3HorizontalDividerTb4b4b4(Tb4b4b4)
Te6edf3SwitchPreferenceTb4b4b4(
Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3pa_fan_disabledTb4b4b4)Tb4b4b4,
Te6edf3checked Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3pa_fan_disabledTb4b4b4,
Te6edf3enabled Tff7b72= Te6edf3stateTb4b4b4.Te6edf3connectedTb4b4b4,
Te6edf3onCheckedChange Tff7b72= Tb4b4b4{ Te6edf3formStateTb4b4b4.Te6edf3value Tff7b72= Te6edf3formStateTb4b4b4.Te6edf3valueTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3pa_fan_disabled Tff7b72= Tffa657itTb4b4b4) Tb4b4b4}Tb4b4b4,
Te6edf3containerColor Tff7b72= Te6edf3CardDefaultsTb4b4b4.Te6edf3cardColorsTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3containerColorTb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tf0883e@Composable
Tff7b72private Tff7b72fun Td2a8ffManualModemSettingsTb4b4b4(
Te6edf3configTb4b4b4: Te6edf3ConfigTb4b4b4.Te6edf3LoRaConfigTb4b4b4,
Te6edf3enabledTb4b4b4: Tffa657BooleanTb4b4b4,
Te6edf3focusManagerTb4b4b4: Te6edf3androidxTb4b4b4.Te6edf3composeTb4b4b4.Te6edf3uiTb4b4b4.Te6edf3focusTb4b4b4.Te6edf3FocusManagerTb4b4b4,
Te6edf3onConfigChangeTb4b4b4: Tb4b4b4(Te6edf3ConfigTb4b4b4.Te6edf3LoRaConfigTb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4,
Tb4b4b4) Tb4b4b4{
Te6edf3androidxTb4b4b4.Te6edf3composeTb4b4b4.Te6edf3foundationTb4b4b4.Te6edf3layoutTb4b4b4.Te6edf3Column Tb4b4b4{
Te6edf3DropDownPreferenceTb4b4b4(
Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3bandwidthTb4b4b4)Tb4b4b4,
Te6edf3enabled Tff7b72= Te6edf3enabledTb4b4b4,
Te6edf3items Tff7b72= Te6edf3BANDWIDTH_OPTIONSTb4b4b4,
Te6edf3selectedItem Tff7b72= Te6edf3configTb4b4b4.Te6edf3bandwidthTb4b4b4,
Te6edf3onItemSelected Tff7b72= Tb4b4b4{ Te6edf3onConfigChangeTb4b4b4(Te6edf3configTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3bandwidth Tff7b72= Tffa657itTb4b4b4)Tb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Te6edf3HorizontalDividerTb4b4b4(Tb4b4b4)
Te6edf3EditTextPreferenceTb4b4b4(
Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3spread_factorTb4b4b4)Tb4b4b4,
Te6edf3value Tff7b72= Te6edf3configTb4b4b4.Te6edf3spread_factorTb4b4b4,
Te6edf3enabled Tff7b72= Te6edf3enabledTb4b4b4,
Te6edf3isError Tff7b72= Te6edf3configTb4b4b4.Te6edf3spread_factor Tff7b72!in Te6edf3SPREAD_FACTOR_RANGETb4b4b4,
Te6edf3keyboardActions Tff7b72= Te6edf3KeyboardActionsTb4b4b4(Te6edf3onDone Tff7b72= Tb4b4b4{ Te6edf3focusManagerTb4b4b4.Te6edf3clearFocusTb4b4b4(Tb4b4b4) Tb4b4b4}Tb4b4b4)Tb4b4b4,
Te6edf3onValueChanged Tff7b72= Tb4b4b4{
Tff7b72if Tb4b4b4(Tffa657it Tff7b72in Te6edf3SPREAD_FACTOR_RANGETb4b4b4) Tb4b4b4{
Te6edf3onConfigChangeTb4b4b4(Te6edf3configTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3spread_factor Tff7b72= Tffa657itTb4b4b4)Tb4b4b4)
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Te6edf3HorizontalDividerTb4b4b4(Tb4b4b4)
Te6edf3EditTextPreferenceTb4b4b4(
Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3coding_rateTb4b4b4)Tb4b4b4,
Te6edf3value Tff7b72= Te6edf3configTb4b4b4.Te6edf3coding_rateTb4b4b4,
Te6edf3enabled Tff7b72= Te6edf3enabledTb4b4b4,
Te6edf3isError Tff7b72= Te6edf3configTb4b4b4.Te6edf3coding_rate Tff7b72!in Te6edf3CODING_RATE_RANGETb4b4b4,
Te6edf3keyboardActions Tff7b72= Te6edf3KeyboardActionsTb4b4b4(Te6edf3onDone Tff7b72= Tb4b4b4{ Te6edf3focusManagerTb4b4b4.Te6edf3clearFocusTb4b4b4(Tb4b4b4) Tb4b4b4}Tb4b4b4)Tb4b4b4,
Te6edf3onValueChanged Tff7b72= Tb4b4b4{
Tff7b72if Tb4b4b4(Tffa657it Tff7b72in Te6edf3CODING_RATE_RANGETb4b4b4) Tb4b4b4{
Te6edf3onConfigChangeTb4b4b4(Te6edf3configTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3coding_rate Tff7b72= Tffa657itTb4b4b4)Tb4b4b4)
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Served by rngit 1.5.2 - Generated in 0.1s